package xyz.bali16.module.activeuser.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gitee.starblues.annotation.Supplier;
import xyz.bali16.module.activeuser.entity.ActiveUser;
import xyz.bali16.module.activeuser.model.ActiveUserAddParam;
import xyz.bali16.module.activeuser.model.ActiveUserPageParam;

import java.util.List;

/**
 * @author bali2 on 9/3/2023.
 * @version 1.0
 */
@Supplier("active_user")
public interface ActiveUserService extends IService<ActiveUser> {
    IPage<ActiveUser> getPage(ActiveUserPageParam param);

    void addActiveUser(ActiveUserAddParam param) throws Exception;

    void updateActiveUser(ActiveUserAddParam param) throws Exception;

    void delete(String activeUserId) throws Exception;

    @Supplier.Method("addPostNum")
    void addPostNum(String userId);
    @Supplier.Method("addCollectNum")
    void addCollectNum(String userId);
    @Supplier.Method("addLikeNum")
    void addLikeNum(String userId);
    @Supplier.Method("addReplyNum")
    void addReplyNum(String userId);
    @Supplier.Method("removePostNum")
    void removePostNum(String userId);
    @Supplier.Method("removeCollectNum")
    void removeCollectNum(String userId);
    @Supplier.Method("removeLikeNum")
    void removeLikeNum(String userId);
    @Supplier.Method("removeReplyNum")
    void removeReplyNum(String userId);
    @Supplier.Method("updateScore")
    void updateScore(ActiveUser activeUser);
    @Supplier.Method("getRank")
    List<ActiveUser> getRank(Integer currPage, Integer pageSize);
}
